namespace ext.data
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// Data reader class to create an Array of {@link Ext.data.Record} objects from an Array.
	/// Each element of that Array represents a row of data fields. The
	/// fields are pulled into a Record object using as a subscript, the mapping property
	/// of the field definition if it exists, or the field&apos;s ordinal position in the definition.  Example code:  
	/// var Employee = Ext.data.Record.create([
	/// {name: &apos;name&apos;, mapping: 1}, // &quot;mapping&quot; only needed if an &quot;id&quot; field is present which
	/// {name: &apos;occupation&apos;, mapping: 2} // precludes using the ordinal position as the index.
	/// ]);
	/// var myReader = new Ext.data.ArrayReader({
	/// {@link #idIndex}: 0
	/// }, Employee);
	///  This would consume an Array like this:  
	/// [ [1, &apos;Bill&apos;, &apos;Gardener&apos;], [2, &apos;Ben&apos;, &apos;Horticulturalist&apos;] ]
	/// </summary>
	/// <htmlSummary>
	/// &lt;p&gt;Data reader class to create an Array of {@link Ext.data.Record} objects from an Array.
	/// Each element of that Array represents a row of data fields. The
	/// fields are pulled into a Record object using as a subscript, the &lt;code&gt;mapping&lt;/code&gt; property
	/// of the field definition if it exists, or the field&apos;s ordinal position in the definition.&lt;/p&gt;
	/// &lt;p&gt;Example code:&lt;/p&gt;
	/// &lt;pre&gt;&lt;code&gt;
	/// var Employee = Ext.data.Record.create([
	/// {name: &apos;name&apos;, mapping: 1}, // &quot;mapping&quot; only needed if an &quot;id&quot; field is present which
	/// {name: &apos;occupation&apos;, mapping: 2} // precludes using the ordinal position as the index.
	/// ]);
	/// var myReader = new Ext.data.ArrayReader({
	/// {@link #idIndex}: 0
	/// }, Employee);
	/// &lt;/code&gt;&lt;/pre&gt;
	/// &lt;p&gt;This would consume an Array like this:&lt;/p&gt;
	/// &lt;pre&gt;&lt;code&gt;
	/// [ [1, &apos;Bill&apos;, &apos;Gardener&apos;], [2, &apos;Ben&apos;, &apos;Horticulturalist&apos;] ]
	/// &lt;/code&gt;&lt;/pre&gt;
	/// </htmlSummary>
	/// <definedin>src\data\ArrayReader.js</definedin>
	[ScriptName("ArrayReader")]
	[ScriptNamespace("Ext.data")]
	[Imported()]
	public partial class ArrayReader : ext.data.JsonReader
	{
		
		#region Constructors
		public ArrayReader(ext.data.ArrayReader_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		/// <param name="meta">Metadata configuration options.</param>
		/// <param name="recordType">
		/// &lt;p&gt;Either an Array of {@link Ext.data.Field Field} definition objects (which
		/// will be passed to {@link Ext.data.Record#create}, or a {@link Ext.data.Record Record}
		/// constructor created from {@link Ext.data.Record#create}.&lt;/p&gt;
		/// </param>
		public ArrayReader(object meta, System.Array recordType)
		{
		}
		
		/// <summary>Constructor</summary>
		/// <param name="meta">Metadata configuration options.</param>
		/// <param name="recordType">
		/// &lt;p&gt;Either an Array of {@link Ext.data.Field Field} definition objects (which
		/// will be passed to {@link Ext.data.Record#create}, or a {@link Ext.data.Record Record}
		/// constructor created from {@link Ext.data.Record#create}.&lt;/p&gt;
		/// </param>
		public ArrayReader(object meta, object recordType)
		{
		}
		
		/// <summary>Constructor</summary>
		public ArrayReader()
		{
		}
		#endregion
		
		#region Fields
		/// <definedin>src\data\ArrayReader.js</definedin>
		[ScriptName("successProperty")]
		public string SuccessProperty;
		
		/// <summary>
		/// The subscript within row Array that provides an ID for the Record.
		/// Deprecated. Use {@link #idIndex} instead.
		/// </summary>
		/// <definedin>src\data\ArrayReader.js</definedin>
		/// <optional>Optional Field</optional>
		[ScriptName("id")]
		public System.Number Id;
		
		/// <summary>The subscript within row Array that provides an ID for the Record.</summary>
		/// <definedin>src\data\ArrayReader.js</definedin>
		/// <optional>Optional Field</optional>
		[ScriptName("idIndex")]
		public System.Number IdIndex;
		#endregion
		
		#region Methods
		/// <summary>Create a data block containing Ext.data.Records from an Array.</summary>
		/// <definedin>src\data\ArrayReader.js</definedin>
		/// <param name="o">An Array of row objects which represents the dataset.</param>
		/// <returns>
		/// data A data block which is used by an Ext.data.Store object as
		/// a cache of Ext.data.Records.
		/// </returns>
		[ScriptName("readRecords")]
		public object ReadRecords(object o)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
	}
}
